# 一、Maven环境隔离简介
# 基本类别
- 本地开发环境(local)
- 开发环境(dev)
- 测试环境(beta)
- 线上环境(prod)
# 解决的问题
- 避免人工修改配置信息导致的问题
- 轻松分环境编译,打包,部署
- ......
# 环境隔离的依赖
Spring Profile:
a. Spring可使用Profile决定程序在不同环境下执行情况,包含配置、加载Bean、依赖等。 Spring的Profile一般项目包含:dev(开发), test(单元测试), qa(集成测试), prod(生产环境)。由spring.profiles.active属性决定启用的profile。
b. SpringBoot的配置文件默认为 application.properties(或yaml,此外仅以properties配置为说明)。不同Profile下的配置文件由application-{profile}.properties管理,同时独立的 Profile配置文件会覆盖默认文件下的属性。
Maven Profile: Maven同样也有Profile设置,可在构建过程中针对不同的Profile环境执行不同的操作,包含配置、依赖、行为等。 Maven的Profile由 pom.xml 的标签管理。每个Profile中可设置:id(唯一标识), properties(配置属性), activation(自动触发的逻辑条件), dependencies(依赖)等。
# 二、相关配置
Maven
- pom.xml中,在build(dependencies)同级的地方加入:
//分别代表开发(dev),测试(beta)和线上(prod)环境
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile>dev</profile>
</properties>
</profile>
<profile>
<id>beta</id>
<properties>
<profile>beta</profile>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile>prod</profile>
</properties>
</profile>
</profiles>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- 在classpath下分别创建三个环境需要的application-${profile}.propertices:

- 在application.propertices中配置指定的环境:
//配置动态的profile注入(profile的值由maven修改)
spring.profiles.active=@profile@
1
2
2
3. 通过Eclipse对maven的profile进行设置:
(右键项目 - peoperties - maven - 输入pom中配置的profile的Id - Apply后即配置环境成功)